package com.jwsoft.manager.core.integration;

import com.bifang.assistant.common.vo.BaseVO;
import com.bifang.module.base.common.vo.dict.SelectVO;
import com.bifang.module.base.common.vo.tree.TreeVO;
import com.github.pagehelper.PageInfo;
import com.jwsoft.manager.common.vo.eduAddressTreeOriginal.EduAddressTreeOriginalVO;
import com.jwsoft.manager.common.vo.eduAddressTreeOriginal.EduAddressTreeOriginalKeyVO;
import com.jwsoft.manager.common.vo.eduAddressTreeOriginal.EduAddressTreeOriginalQueryVO;
import com.jwsoft.manager.common.vo.eduAddressTreeOriginal.OriginalInfoVO;

import java.util.List;

/**
 * 地址树参数表业务本地接口
 *
 * @author zhiyuan
 * @since 2024-01-08
 */
public interface EduAddressTreeOriginalIntegration {
    /** 分页查询 */
    PageInfo<EduAddressTreeOriginalVO> getList(EduAddressTreeOriginalQueryVO vo);
    /** 根据主键查询详情 */
    EduAddressTreeOriginalVO getById(EduAddressTreeOriginalKeyVO vo);
    /** 保存前统一校验*/
    void checkSave(EduAddressTreeOriginalVO vo);
    /** 新增 */
    EduAddressTreeOriginalVO add(EduAddressTreeOriginalVO vo);
    /** 修改 */
    EduAddressTreeOriginalVO edit(EduAddressTreeOriginalVO vo);
    /** 根据主键删除 */
    void del(EduAddressTreeOriginalKeyVO vo);

    /**
     * 根据父id获取下级节点信息
     * @param vo
     * @return
     */
    PageInfo<EduAddressTreeOriginalVO> getListByParentId(EduAddressTreeOriginalQueryVO vo);

    /**
     * 参数节点信息保存
     * @param vo
     * @return
     */
    EduAddressTreeOriginalVO saveAddressTreeInfo(OriginalInfoVO vo);

    /**
     * 参数表级联保存
     * @param vo
     * @return
     */
    List<TreeVO> getCascadeOption(EduAddressTreeOriginalQueryVO vo);

    /**
     * 根据所属行政区划获取街道信息
     * @param vo
     * @return
     */
    List<SelectVO> getStreetByAreaCode(EduAddressTreeOriginalQueryVO vo);

    /**
     * addressTreeOriginal0012
     * @param vo
     */
    void clearTreeCache(BaseVO vo);
}
